Server.prototype._start = function _start(socket) {
var endpoint = new Endpoint(this._log, 'SERVER', this._settings);
this._log.info({ e: endpoint,
client: socket.remoteAddress + ':' + socket.remotePort,
SNI: socket.servername
}, 'New incoming HTTP/2 connection');
endpoint.pipe(socket).pipe(endpoint);
var self = this;
endpoint.on('stream', function _onStream(stream) {
var response = new OutgoingResponse(stream);
var request = new IncomingRequest(stream);
request.once('ready', self.emit.bind(self, 'request', request, response));
});
endpoint.on('error', this.emit.bind(this, 'clientError'));
socket.on('error', this.emit.bind(this, 'clientError'));
this.emit('connection', socket, endpoint);
};
Server.prototype._fallback = function _fallback(socket) {
var negotiatedProtocol = socket.alpnProtocol || socket.npnProtocol;
this._log.info({ client: socket.remoteAddress + ':' + socket.remotePort,
protocol: negotiatedProtocol,
SNI: socket.servername
}, 'Falling back to simple HTTPS');
for (var i = 0; i < this._originalSocketListeners.length; i++) {
this._originalSocketListeners[i].call(this._server, socket);
}
this.emit('connection', socket);
};